/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package aqu.controlador.Administrador;

import aqu.bean.generico.BeanGenerico;
import aqu.persistencia.Dao.Administracion.*;
import aqu.persistencia.entity.*;
import aqu.persistencia.utilidad.MessagesController;
import com.icesoft.faces.component.ext.RowSelectorEvent;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent;

/**
 *
 * @author AQU
 */
@ManagedBean(name = "usuarioController")
@ViewScoped
public class UsuarioController extends BeanGenerico {

    private SegUsuario usuario;
    private List<SegUsuario> lista;
    private List<SegPerfil> listaPerfil;
    private SegUsuarioManager SegUsuarioManager = new SegUsuarioManager();
    private SegPerfilManager SegPerfilManager = new SegPerfilManager();
    private boolean panelvisible;
    private String actionSelectedGroup = "";
    
    public void switchGroup(SegUsuario usuario){
		actionSelectedGroup = usuario.getSegCodigoPer();
                
	}
    public String getActionSelectedGroup() {
        return actionSelectedGroup;
    }

    public void setActionSelectedGroup(String actionSelectedGroup) {
        this.actionSelectedGroup = actionSelectedGroup;
    }

    public UsuarioController() {

        usuario = new SegUsuario();
        lista = SegUsuarioManager.getList();
        listaPerfil=SegPerfilManager.getList();
    }

    public boolean isPanelvisible() {
        return panelvisible;
    }

    public void setPanelvisible(boolean panelvisible) {
        this.panelvisible = panelvisible;
    }

    public void llamarPanelvisible(ActionEvent event) {
        panelvisible = !panelvisible;
    }

    public List<SegUsuario> getLista() {
        lista = SegUsuarioManager.getList();
        return lista;
    }

    public void setLista(List<SegUsuario> lista) {
        this.lista = lista;
    }

    public void nuevo(ActionEvent actionEvent) {
        usuario = new SegUsuario();
    }

    public String eliminar() {
        try {
            SegUsuario usuarioTemp = (SegUsuario) (usuario);
            if (SegUsuarioManager.delete(usuarioTemp) == false) {
                llamarPanelvisible(null);

            }
        } catch (Exception e) {
            MessagesController.addInfo("Mensaje de error :", e.getMessage());
            llamarPanelvisible(null);
        }

        return "index";

    }

    public void insertar(ActionEvent actionEvent) {
        try {

            if (SegUsuarioManager.create(usuario) == false) {
                llamarPanelvisible(null);

            }
        } catch (Exception e) {
            MessagesController.addInfo("Mensaje de error :", e.getMessage());
            llamarPanelvisible(null);
        }

    }

    public void modificar(ActionEvent actionEvent) {
        try {
            if (SegUsuarioManager.update(usuario) == false) {
                llamarPanelvisible(null);

            }
        } catch (Exception e) {
            MessagesController.addInfo("Mensaje de error :", e.getMessage());
            llamarPanelvisible(null);
        }


    }

    public void rowSelectionListener(RowSelectorEvent event) {
        usuario = lista.get(event.getRow());
        switchGroup(usuario);

    }

    public SegUsuarioManager getSegUsuarioManager() {
        return SegUsuarioManager;
    }

    public void setSegUsuarioManager(SegUsuarioManager SegUsuarioManager) {
        this.SegUsuarioManager = SegUsuarioManager;
    }

    public SegUsuario getUsuario() {
        return usuario;
    }

    public void setUsuario(SegUsuario usuario) {
        this.usuario = usuario;
    }

    public SegPerfilManager getSegPerfilManager() {
        return SegPerfilManager;
    }

    public void setSegPerfilManager(SegPerfilManager SegPerfilManager) {
        this.SegPerfilManager = SegPerfilManager;
    }

    public List<SegPerfil> getListaPerfil() {
        return listaPerfil;
    }

    public void setListaPerfil(List<SegPerfil> listaPerfil) {
        this.listaPerfil = listaPerfil;
    }

    

    
    
}
